/**
 * Service.java
 * ************************** 
 * @date May 9, 2011
 * @author Michele Tamburini
 * 
 * **************************
 */
package infrastructureAPI;



/**
 * Description: 
 * The P2PCloudSystem provides different services that constitute
 * the infrastructure level of the system.
 * A service in the cloud need to implement the Service interface
 * and declare the class which it belongs to.
 * The API functions, called by a user from the Front-End of the cloud,
 * will take advantage of the Service(s) built in the Back-End and
 * provided through the infrastructure level.
 * In order to be retrieved from the infrastructure, 
 * a Service has to declare the class which it belongs to.
 * A Service may belong to only one class.  
 * Generally a system module into the Back-End maintains
 * a set of Services that a user is able to call.
 *
 */
public interface Service{
	
	/**
	 * Defines the class which the current Service belongs to.
	 * A Service may belong to only one class.
	 * In order to retrieve a service from the infrastructure level,
	 * the user has to specify the Class<?> of the required service. 
	 * 
	 * @return Class<?> the of the Service
	 */
	public Class<?> getServiceClass();

	
}
